<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //    async function foo() {
        //     console.log(2);
        //     console.log(await Promise.resolve(8));
        //     console.log(9);
        //    }
        //    async function bar() {
        //     console.log(4);
        //     console.log(await 6);
        //     console.log(7);
        //    }
        //    console.log(1);
        //    foo()
        //    console.log(3);
        //    bar()
        //    console.log(5);
        // 1 2 3 4 5 8 9 6 7

        // async function async1() {
        //     console.log('async1 start');
        //     // await async2();
        //     // async2().then(() => {

        //     //     console.log('async1 end');
        //     // })
        // }
        // async function async2() {
        //     return new Promise(resolve => {
        //         resolve();
        //         console.log('async2');
        //     })
        // }
        // console.log('script start');
        // setTimeout(() => {
        //     console.log('setTimeout');
        // }, 0);
        // async1();
        // new Promise(function (resolve) {
        //     console.log('promise1');
        //     resolve();
        // }).then(function () {
        //     console.log('promise2');
        // });
        // console.log('script end');
        // async function async1() {
        //     console.log('async1 start');
        //     await async2();
        //     console.log('async1 end');
        // }
        // async function async2() {
        //     console.log('async2');
        // }
        // console.log('script start');
        // setTimeout(() => {
        //     console.log('setTimeout');
        // }, 0);
        // async1();
        // new Promise(function (resolve) {
        //     console.log('promise1');
        //     resolve();
        // }).then(function () {
        //     console.log('promise2');
        // });
        // console.log('script end');
        // async function foo1() {
        //     // foo2().then(() => {
        //     //     console.log('666');
        //     // })
        //     return new Promise((resolve) => {
        //         resolve(foo2())
        //     }).then(() => {
        //         console.log('6666');
        //     })
        // }
        // async function foo2() {
        //     return new Promise((resolve) => {
        //         resolve()
        //     })
        // }
        // foo1()
        // Promise.resolve().then(() => {
        //     console.log('777');
        // }).then(() => {
        //     console.log('888');
        // }).then(() => {
        //     console.log('999');
        // })
    async function foo() {
      return Promise.resolve('10')
    }
    async function foo1() {
      return {
        then() {
          
        }
      }
    }
    async function fun() {
      await foo1()
      console.log('222');
      
    }
    fun()
    Promise.resolve('100').then(() => {
      console.log('333');
    }).then(() => {
      console.log('444');
    }).then(() => {
      console.log('555');
      
    })
    </script>
</body>

</html>